package net.capstone.cra.smartcontroller.motion;

/**
 * The Class Motion.
 */
public abstract class Motion {
	
	/**
	 * The type.
	 */
	private int type;
	
	// Motion list
	/**
	 * The Constant TYPE_NONE.
	 */
	public static final int TYPE_NONE = 0x0;
	
	/**
	 * The Constant TYPE_SHAKE.
	 */
	public static final int TYPE_SHAKE = 0x1;

	/**
	 * Detect.
	 * 
	 * @param event
	 *            the event
	 * @return true, if successful
	 */
	public abstract boolean detect(AccelerometerEvent event);

	/**
	 * Gets the type.
	 * 
	 * @return the type
	 */
	public int getType() {
		return type;
	}

	/**
	 * Sets the type.
	 * 
	 * @param type
	 *            the new type
	 */
	protected void setType(int type) {
		this.type = type;
	}
}
